
\documentclass[conference]{IEEEtran}

\usepackage{cite}

\usepackage[pdftex]{graphicx}
\graphicspath{{pdf/}{figs/}}
\DeclareGraphicsExtensions{.pdf, .jpeg, .png}

% *** Do not adjust lengths that control margins, column widths, etc. ***
% *** Do not use packages that alter fonts (such as pslatex).         ***

% correct bad hyphenation here
\hyphenation{op-tical net-works semi-conduc-tor}


\begin{document}

% *************************************************************************************************
% TITULO
% *************************************************************************************************
\title{Low-Power Self-Energy Meter for Wireless Sensor Network}

% *************************************************************************************************
% AUTORES
% *************************************************************************************************
\author{
	\IEEEauthorblockN{Carlos Fern\'andez, Diego Bouvier, Jorge Villaverde, Leonardo Steinfeld,
	Juli\'an Oreggioni}
	\IEEEauthorblockA{Instituto de Ingenier\'ia El\'ectrica\\
		Facultad de Ingenier\'ia UdelaR\\
		Montevideo, Uruguay\\
		Email: carafer@adinet.com.uy, \{dbouvier, jvillav, leo, juliano\}@fing.edu.uy}
}
\maketitle


% *************************************************************************************************
% ABSTRACT
% *************************************************************************************************
\begin{abstract}
Real-time measurement of the energy consumption of wireless sensor network nodes in the field has many interesting applications that range from predicting the remaining battery charge to the energy efficiency assessment of communication protocols. However, designing such a system presents many challenges. In this work we present a measurement method and circuit, named Self-Energy Meter (SEM), that easily adds to a sensor node the capability of measuring its own energy consumption. The SEM developed has very low power consumption, ensuring an almost negligible impact in the battery lifetime. It also solves the problem of handling a dynamic range of five decades. Results from simulations show that the SEM is highly linear, with a coefficient of determination of 0.996, presenting a very low temperature drift, and is almost independent of the power supply.
\end{abstract}

% *************************************************************************************************
% PALABRAS CLAVE
% *************************************************************************************************
\begin{IEEEkeywords}
	Energy Measurement, Energy Consumption, WSN, Self-Energy Meter, Low Power.
\end{IEEEkeywords}

% *************************************************************************************************
% I - INTRODUCCION
% *************************************************************************************************
\section{INTRODUCTION}
A lot of efforts have been made in order to measure or estimate the energy consumption of a wireless sensor network (WSN) node, almost all of them for laboratory usage.
In \cite{OnEnergy} there is an analysis of some of these efforts and conclusions about them. It also points out the main motivations for measuring the energy consumption, such as predicting battery lifetime of a single node or the entire network, or allowing optimization of the communication protocols.

A sensor node comprises a microcontroller, a packet radio, and at least one sensor. Hereafter, we will refer to the microcontroller and the transceiver, without distinguishing if the node is implemented using a SoC (System on a Chip) or a separate integrated circuit for the microcontroller and the transceiver.
Typically a WSN node has two distinct consumption levels corresponding to different operation modes. In the active mode, the node is performing computations, and may also be transmitting or receiving data through its wireless radio. In this case, the current normally varies from a few miliamperes to tens of miliamperes. In the sleep mode, the current is roughly constant and can be as low as a few microamperes (as shown in \cite{TelosB}). Usually these two consumption levels are used to define a duty-cycle (DC).

Different approaches has been taken to measure energy consumption. In \cite{EnergyBucket} a coulomb counter is implemented using a pair of capacitors to support programming and debugging tasks (at the lab in development time). This method was also applied to real-time operation in the field \cite{AutomedidaConsumo}. Although this method is very efficient from the point of view of energy consumption, it has some drawbacks, e.g. the introduced ripple when switching the feeding capacitor. 
In \cite{MicroPowerMeter} a voltage-to-frequency converter (VFC) is presented for the same purpose. This approach can achieve negligible ripple, as the current sensing is done by means of a shunt resistor, but presents a poor temporal resolution if the current is too small.
% el problema no era el rango dinamico?

Continuous measurement of energy consumption in very low power battery operated devices presents many challenges. The first and most important is the energy cost of the measuring method itself. Adding hardware means more power consumption, so the first requirement is to maintain the battery lifetime of the device under test (DUT) unaltered (e.g. above 90\% of the original duration without the measurement plug-in). %As the energy stored in a battery is measured in charge, i.e. Ah or ampere-hour, it is natural that the measuring method should give an energy consumption in the same magnitude.
The second limitation is the scarse resources available in the sensor node to process the measured data. Large data manipulation or calculations should be avoided. 
In the third place, as many WSN nodes are deployed in open fields exposed to harsh conditions, they are exposed to a wide temperature variation, thus the measuring device should not be affected by temperature changes.
One of the most challenging requirement is the dynamic range, as the current varies from a few microamperes to tens of miliamperes.
Moreover, good accuracy and adequate temporal resolution are fundamental for measuring different operation states of the node, e.g. sleep, computing, radio transmission and reception. In this work, the resolution was selected to be one tenth of the charge consumed during a CCA (Clear Channel Assessment), since represent the least consuming activity of interest of a sensor node. 
And last but not least, the measurement circuit should be simple (pursuing low cost) and easy to integrate to the sensor node.

In this work we propose a method and a circuit to add to a sensor node the capability of measuring its own energy consumption, to be used in the field, with good linearity, temperature stability, independently of the battery voltage drop over the time, and without significantly affecting the battery lifetime. The remainder of this paper is organized as follows: in Section II, we present our proposal, namely Self-Energy Meter (SEM), in Section III we present the results, and finally Section IV contains concluding remarks and research directions.

% *************************************************************************************************
% II - DESCRIPCION DEL SISTEMA
% *************************************************************************************************
% \section{SYSTEM DESCRIPTION}
\section{Self-Energy Meter}

Our method is based on measuring the DUT current consumption through the voltage drop across a shunt resistor. This voltage is fed into a voltage-to-frequency converter. Ideally, the output frequency is proportional to the current through the resistor. 
This technique has an inherent drawback, the limited measurement range \cite{MicroPowerMeter}. % aparentemente lo solucionan...
In one hand, this method is limited by the maximum acceptable voltage drop in the shunt resistor, resulting from the maximum current consumption, the minimum node operating voltage and the final battery voltage. 
In the other, for very low current values (i.e. sleep current) the voltage drop across the shunt resistor is below the circuit noise level, preventing its measurement.
We propose a novel approach to overcome this shortcoming for measuring a sensor node consumption in the full range of operation. The active current, below milliamperes, is measured using the aforementioned method. The sleep current, in the microamperes range, is measured by feeding the node from a charged capacitor. 
In previous works that used this principle \cite{EnergyBucket} \cite{AutomedidaConsumo}, the measuring is based in switching a pair of capacitors -while one capacitor is feeding the device, the other is charging- and counting the number of capacitor full discharges. Since a switching control is required, the associated current draw prevent using this method during sleep mode. Instead, we reused the method adopted for the active mode to measure the accumulated sleep consumption.

% The SEM core is a current-to-frequency converter which consists of three blocks. In the Fig.
The SEM core consists of three blocks. In the Fig.~\ref{fig1} it is presented a block diagram of the SEM and how is its integration with the DUT.

\begin{figure}[!htb]
\centering
\includegraphics[width=2.5in]{Fig1}
\caption{Block diagram of the SEM showing the integration with the WSN node.}
\label{fig1}
\end{figure}

% The first block is a resistor ($R_{shunt}$) in series with the DUT that is used as a current-to-voltage converter. In order to maintain a low power operation, the second block converts the voltage across Rshunt to a current one thousand smaller than the original.
The first block is a shunt resistor ($R_{shunt}$) in series with the DUT, which is used as a current-to-voltage converter. In order to maintain a low power operation, the second block converts the voltage across $R_{shunt}$ to a current one thousand smaller than the original (we call this scaling factor $\alpha$). 
The third block takes that current and repeatedly charges and discharges a capacitor ($C$) from ground to a certain threshold. The output of the last block responds to this charge and discharge generating a square wave signal ready to be used by the sensor node. A counter from the sensor node is incremented with each falling edge of this signal. Each count represents a fixed amount of charge consumed by the sensor node (a \emph{charge quantum}).

% Reescribir el siguiente parrafo. Son dos ideas: (1) usar un condensador y el VCF para medir el consumo en sleep y apagar el VFC en sleep para consumir poco.
%>>> 
To measure the full range of energy consumption, in particular the two distinct states of sleep and active, SEM also uses two states. 
The idea is to use a capacitor as a buffer (named $C_{sleep}$) for the energy consumed during the sleep state. When the active state is reached, the DUT power supply is switched from $C_{sleep}$ to the battery, and the capacitor is switched from DUT to a point where it is recharged and prepared for the next cycle. In this scenario, charge consumed during sleep is measured when recharging $C_{sleep}$. A time diagram is presented on Fig. \ref{fig2}.

\begin{figure}[!htb]
\centering
\includegraphics[width=2.5in]{Fig2}
\caption{Timing diagram of the measuring cycle. Active state is denoted by A, Sleep state by S. When the node is power from the battery is marked as B and when the buffer capacitor is connected is denoted as C. The axes scales are exaggerated for illustrative purposes.}
\label{fig2}
\end{figure}

% To make these changes between consumption measurement modes, and different power sources, two switches are used. 
Two switches are used to change between the measurement modes, and to switch between different power sources. 
% In the Fig. \ref{fig3} there is a diagram that shows the fundamental components that permits this behavior. One switch ($SW_{1}$) connects the DUT to the battery or to the buffer capacitor $C_{sleep}$. While the other switch ($SW_{2}$) connects the $C_{sleep}$ capacitor to the DUT or to the battery, through a pair of resistors. These two switches are controlled ideally by only one control line of the DUT.
Fig. \ref{fig3} shows a diagram with the described components: the switch ($SW_{1}$) connects the DUT to the battery or to the buffer capacitor $C_{sleep}$ and the switch ($SW_{2}$) connects the $C_{sleep}$ capacitor to the DUT or to the battery through a pair of resistors.
These two switches are controlled by only one control line of the DUT. % porque decía ``ideally``?

\begin{figure}[!htb]
\centering
\includegraphics[width=2.5in]{Fig3}
\caption{Generic WSN node with the VFC and the DUT included. Current sense point (a) and analog switches control lines (b) are shown.}
\label{fig3}
\end{figure}

The resistor $R_{cap}$ limits the charging current of $C_{sleep}$, so it fits within the maximum range of SEM. During the last phase of sleep state measure, the battery powers the DUT and the current through $R_{shunt}$ is the sum of the current recharging $C_{sleep}$ and the DUT in sleep.
In interval III (\ref{fig2}) it is possible to see that the DUT is consuming more energy than in intervals II and IV. This is necessary as the microcontroller of the DUT must be active for a very short period of time to switch the power supply from $C_{sleep}$ to the battery. This small rise in the current -that will be measured as sleep consumption because we have $C_{sleep}$ as power source- can be neglected, as it is very small compared to the other current/time pairs.

The measuring current range with the proposed configuration is reduced from five decades (from micro to tens of milliamperes) to only two decades (milliamperes to tens of milliamperes) as there is no need to measure the consumption in sleep state. This consumption is measured in the wake-from-sleep event, during the $C_{sleep}$ charge.

% no tiene que ser asi, simplemente simplifica las cuentas.
%>>
Assuming that the current is constant during each state, and assuming that there are many pulses in each state, the capacitor is charged with constant current, and thus it holds that:

\begin{equation}\label{ecuacion1}
f(I)=k \cdot I
\end{equation}

\noindent
where $f(I)$ is the frequency of the output signal, $I$ is the current drained from the battery, and $k$ is a constant determined by system components. The parameter $k$ is in $coulombs^{-1}$, and is equivalent to the inverse of the charge of each pulse from SEM. In Eq. (2) is shown the value of $k$ after disregarding some terms, where C is the timing capacitor, $\alpha$ is the current scaling factor, and $V_{ref}$ is the voltage reference to which $C$ is charged.

\begin{equation}\label{ecuacion2}
k = (\alpha \cdot C \cdot V_{ref})^{-1}
\end{equation}

% *************************************************************************************************
% III - RESULTADOS
% *************************************************************************************************
\section{RESULTS}

SPICE simulation results yielded encouraging data showing that nodes have an accurate measurement of energy consumption.

Fig. \ref{fig4} shows the relationship between the output frequency of the current-frequency
converter and the instantaneous current consumed by the DUT. This relationship is shown for three different temperature values
when the node is powered with battery at their nominal voltage. It is also shown an approximation using linear regression (dashed), which has a coefficient of determination of 0.996. Finally, a curve at nominal temperature but with decreased battery terminals voltage (2.4 V) is also shown.
%Also shown is a curve to nominal temperature but with the voltage at the battery terminals decreased (2.4V).

\begin{figure}[!htb]
\centering
\includegraphics[width=2.5in]{Fig4}
\caption{Output frequency versus current consumed by the DUT.}
\label{fig4}
\end{figure}

It is worth to remark the fact that the approximation is forced to pass through zero. This is to simplify
the conversion on the DUT as each pulse yields a constant charge value.

Fig. \ref{fig5} shows the voltage on $C_{sleep}$ terminals and the output signal during the time $C_{sleep}$
recharge that occurs when the node returns the minimum power state. Consumed charge is recovered in
this period, which is less than the time in sleep. This fact is always true as the recharge current
is many times the discharge rate.

\begin{figure}[!htb]
\centering
\includegraphics[width=2.5in]{Fig5}
\caption{Simulation of the output signal during the switch from sleep state to active state, and
the measuring of the charge current of the capacitor $C_{sleep}$.}
\label{fig5}
\end{figure}

% *************************************************************************************************
% IV - CONCLUSIONES
% *************************************************************************************************
\section{CONCLUSIONS}
We proposed a system called SEM that allows a WSN sensor node to meter in real-time its own energy
consumption in the field. The SEM overcame the problem of handling a dynamic range of five decades
and a theoretical calculus shows that the consumption overhead of this method is less than 1\% for
a TelosB with a duty cycle above 0.3\%. Results from simulations show that the SEM is highly
linear, with a coefficient of determination of 0.996, has a very low temperature drift, and is
almost independent of the power supply.

In order to complete this on-going research, the SEM has to be built and tested in the field.
Moreover, a future work could include a comparison between the SEM and estimation methods such
as ContikiOS's Energest \cite{ContikiOS}. Long term deployments should be done to exploit the
advantages of energy estimation on every node of the WSN.

\bibliographystyle{IEEEtran}
\bibliography{bibPoster}


\end{document}


